* Remove the Servant build flag; always build with support for
annex+http urls and git-annex p2phttp.
+ * enableremote: Allow type= to be provided when it does not change the
+ type of the special remote.
-- Joey Hess <id@joeyh.name> Thu, 25 Sep 2025 13:36:21 -0400
start o (name:rest) = go =<< filter matchingname <$> Annex.getGitRemotes
where
matchingname r = Git.remoteName r == Just name
- go [] = deadLast name $
- let config = Logs.Remote.keyValToConfig Proposed rest
- in case M.lookup SpecialRemote.typeField config of
- Nothing -> startSpecialRemote o name config
- Just _ -> giveup "Cannot change type= of existing special remote. Instead, use: git-annex initremote --sameas"
+ go [] = deadLast name $
+ startSpecialRemote o name $
+ Logs.Remote.keyValToConfig Proposed rest
go (r:_)
| not (null rest) = go []
| otherwise = do
starting cname ai si $ do
let fullconfig = config `M.union` c
t <- either giveup return (SpecialRemote.findType fullconfig)
+ case SpecialRemote.findType c of
+ Right t' | t' /= t ->
+ giveup "Cannot change type= of existing special remote. Instead, use: git-annex initremote --sameas"
+ _ -> noop
gc <- maybe (liftIO dummyRemoteGitConfig)
(return . Remote.gitconfig)
=<< Remote.byUUID u
where
testscheme scheme = intmpclonerepo $ test_with_gpg $ \gpgcmd environ -> do
createDirectory (literalOsPath "dir")
- let ps =
+ let initps =
[ "foo"
+ , "type=directory"
, "encryption=" ++ scheme
, "directory=dir"
, "highRandomQuality=false"
] ++ if scheme `elem` ["hybrid","pubkey"]
then ["keyid=" ++ Utility.Gpg.testKeyId]
else []
- let initps = ps ++ [ "type=directory" ]
git_annex' "initremote" initps (Just environ) "initremote"
git_annex_shouldfail' "initremote" initps (Just environ) "initremote should not work when run twice in a row"
- git_annex' "enableremote" ps (Just environ) "enableremote"
- git_annex' "enableremote" ps (Just environ) "enableremote when run twice in a row"
+ git_annex' "enableremote" initps (Just environ) "enableremote"
+ git_annex' "enableremote" initps (Just environ) "enableremote when run twice in a row"
git_annex' "get" [annexedfile] (Just environ) "get of file"
annexed_present annexedfile
git_annex' "copy" [annexedfile, "--to", "foo"] (Just environ) "copy --to encrypted remote"